From 7a9bec2891e0af67c23c24fd01a299e6a92fae24 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Wed, 3 Mar 2004 22:27:11 +0000 Subject: [PATCH] Special case scroll events so that they propagate up the widget heirarchy Wed Mar 3 17:20:15 2004 Owen Taylor * gtk/gtkmain.c (gtk_propagate_event): Special case scroll events so that they propagate up the widget heirarchy when received on insensitive widgets. (#101102, reported by Geoff Reedy) --- ChangeLog | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-4 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gtk/gtkmain.c | 13 +++++++++++-- 6 files changed, 46 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 497758aa92..5ed99452e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 3 17:20:15 2004 Owen Taylor + + * gtk/gtkmain.c (gtk_propagate_event): Special case + scroll events so that they propagate up the widget + heirarchy when received on insensitive widgets. + (#101102, reported by Geoff Reedy) + Wed Mar 3 16:47:10 2004 Owen Taylor #109594, reported by Olivier Ripoll diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 497758aa92..5ed99452e0 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Wed Mar 3 17:20:15 2004 Owen Taylor + + * gtk/gtkmain.c (gtk_propagate_event): Special case + scroll events so that they propagate up the widget + heirarchy when received on insensitive widgets. + (#101102, reported by Geoff Reedy) + Wed Mar 3 16:47:10 2004 Owen Taylor #109594, reported by Olivier Ripoll diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 497758aa92..5ed99452e0 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Wed Mar 3 17:20:15 2004 Owen Taylor + + * gtk/gtkmain.c (gtk_propagate_event): Special case + scroll events so that they propagate up the widget + heirarchy when received on insensitive widgets. + (#101102, reported by Geoff Reedy) + Wed Mar 3 16:47:10 2004 Owen Taylor #109594, reported by Olivier Ripoll diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 497758aa92..5ed99452e0 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Wed Mar 3 17:20:15 2004 Owen Taylor + + * gtk/gtkmain.c (gtk_propagate_event): Special case + scroll events so that they propagate up the widget + heirarchy when received on insensitive widgets. + (#101102, reported by Geoff Reedy) + Wed Mar 3 16:47:10 2004 Owen Taylor #109594, reported by Olivier Ripoll diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 497758aa92..5ed99452e0 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Wed Mar 3 17:20:15 2004 Owen Taylor + + * gtk/gtkmain.c (gtk_propagate_event): Special case + scroll events so that they propagate up the widget + heirarchy when received on insensitive widgets. + (#101102, reported by Geoff Reedy) + Wed Mar 3 16:47:10 2004 Owen Taylor #109594, reported by Olivier Ripoll diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 1af4cb1ebc..08c49f91b3 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -2331,8 +2331,17 @@ gtk_propagate_event (GtkWidget *widget, while (TRUE) { GtkWidget *tmp; - - handled_event = !GTK_WIDGET_IS_SENSITIVE (widget) || gtk_widget_event (widget, event); + + /* Scroll events are special cased here because it + * feels wrong when scrolling a GtkViewport, say, + * to have children of the viewport eat the scroll + * event + */ + if (!GTK_WIDGET_IS_SENSITIVE (widget)) + handled_event = event->type != GDK_SCROLL; + else + handled_event = gtk_widget_event (widget, event); + tmp = widget->parent; g_object_unref (widget); -- 2.30.2